package com.lemon.exam.service;

import com.lemon.exam.common.web.Result;
import com.lemon.exam.entity.dto.PaperGradingDTO;
import com.lemon.exam.entity.vo.PaperGradingVO;
import com.lemon.exam.entity.vo.PaperStatisticsVO;
import com.lemon.exam.entity.vo.PaperVO;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.Map;

/**
 * 阅卷管理 接口对象
 *
 * @author Lemon
 * @since 2025/5/17 11:23
 */
public interface IGradingPaperService {
    Flux<PaperVO> findPaperList(String type, int pageNum, int pageSize);

    Mono<Map<String, Object>> getGradingPaper(Long paperId);

    Mono<Result<PaperGradingVO>> grading(Long paperId, Long answerId);

    Mono<String> scoring(PaperGradingDTO param);

    Mono<PaperStatisticsVO> statistics(Long paperId);
}
